﻿#define _CRT_SECURE_NO_WARNINGS


#include <stdio.h>

////输⼊⼀个整数，判断是否为奇数
//int main()
//{
//	int a = 0;
//	scanf("%d", &a);
//	if (a%2==1)
//	{
//		printf("%d,是奇数\n",a);
//	}
//	return 0;
//}


////输⼊⼀个整数，判断是奇数还是偶数
//int main()
//{
//	int a = 0;
//	scanf("%d", &a);
//	if (a%2==1)
//	{
//		printf("%d,是奇数\n",a);
//	}
//	else
//	{
//		printf("%d,是偶数\n", a);
//	}
//	return 0;
//}


//输⼊⼀个年龄，>=18岁就输出：成年，否则就输出：未成年
//int main()
//{
//	int a = 0;
//	printf("请输入年龄\n");
//	scanf("%d", &a);
//	if (a >= 18)
//	{
//		printf("%d,成年\n", a);
//	}
//	else
//	{
//		printf("%d,未成年\n", a);
//	}
//	return 0;
//}




//  输⼊⼀个⼈的年龄
//  如果年龄 < 18岁，打印"少年"
//	如果年龄在18岁⾄44岁打印"⻘年"
//	如果年龄在45岁⾄59岁打印"中⽼年"
//	如果年龄在60岁⾄89岁打印"⽼年"
//	如果90岁及以上打印"⽼寿星

//int main()
//{
//	int a = 0;
//	printf("请输入年龄\n");
//	scanf("%d", &a);
//	if (a < 18)
//	{
//		printf("%d,少年\n", a);
//	}else if(a <= 44)
//	{
//		printf("%d,青年\n", a);
//	}else if (a <= 59)
//	{
//		printf("%d,中老年\n", a);
//	}else if (a <= 89)
//	{
//		printf("%d,老年\n", a);
//	}
//	else
//	{
//		printf("%d,老寿星\n", a);
//	}
//	return 0;
//}



//三元运算符
//int main()
//{
//	int a = 0;
//	printf("请输入年龄\n");
//	scanf("%d", &a);
//	a = (a >= 18) ? 1 : 0;
//	printf("1代表成年，0代表未成年\n");
//	printf("%d\n", a);
//	return 0;
//}

//闰年的判断
//int main()
//{
//	int year = 0;
//	printf("请输入年份\n");
//	scanf("%d", &year);
//	if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
//	{
//		printf("%d,是闰年\n", year);
//	}
//	else
//	{
//		printf("%d,是平年\n", year);
//	}
//	return 0;
//}

//输⼊任意⼀个整数值，计算除3之后的余数//if
//int main()
//{
//	int year = 0;
//	printf("请输入整数\n");
//	scanf("%d", &year);
//	if (year%3==0)
//	{
//		printf("整除,余数是0\n", year);
//	}
//	else if(year % 3 == 1)
//	{
//		printf("余数是1\n", year);
//	}
//	else
//	{
//		printf("余数是2\n", year);
//	}
//	return 0;
//}

//输⼊任意⼀个整数值，计算除3之后的余数//switch
//int main()
//{
//	int year = 0;
//	printf("请输入整数\n");
//	scanf("%d", &year);
//	switch (year%3)
//	{
//		//case 0://error，缺少break;导致逻辑有问题
//		//	printf("整除,余数是0\n");
//		//case 1:
//		//	printf("余数是1\n");
//		//case 2:
//		//	printf("余数是2\n");
//		case 0:
//			printf("整除,余数是0\n");
//			break;
//		case 1:
//			printf("余数是1\n");
//			break;
//		case 2:
//			printf("余数是2\n");
//			break;
//
//	}
//	return 0;
//}


/*
练习：
输⼊⼀个1~7的数字，打印对应的星期⼏
例如：
输⼊：1 输出：星期⼀
输⼊：2 输出：星期⼆
输⼊：3 输出：星期三
输⼊：4 输出：星期四
输⼊：5 输出：星期五
输⼊：6 输出：星期六
输⼊：7 输出：星期天

*/
//int main()
//{
//	int day = 0;
//	printf("请输入数字1-7：\n");
//	scanf("%d", &day);
//	switch (day)
//	{
//	case 1:
//		printf("星期一\n");
//		break;
//	case 2:
//		printf("星期二\n");
//		break;
//	case 3:
//		printf("星期三\n");
//		break;
//	case 4:
//		printf("星期四\n");
//		break;
//	case 5:
//		printf("星期五\n");
//		break;
//	case 6:
//		printf("星期六\n");
//		break;
//	case 7:
//		printf("星期日\n");
//		break;
//	default://默认值
//		printf("输入错误\n");
//		break;
//	}
//	return 0;
//}

/*
练习：
输⼊⼀个1~7的数字，打印工作日/休息日
例如：
输⼊：1-5 输出：工作日
输⼊：6-7 输出：休息日

*/
//int main()
//{
//	int day = 0;
//	printf("请输入数字1-7：\n");
//	scanf("%d", &day);
//	switch (day)
//	{
//	case 1:
//	case 2:
//	case 3:
//	case 4:
//	case 5:
//		printf("工作日\n");
//		break;
//	case 6:
//	case 7:
//		printf("休息日\n");
//		break;
//	default://默认值
//		printf("输入错误\n");
//		break;
//	}
//	return 0;
//}

/*
练习：while
在屏幕上打印1~10的值

*/
//int main()
//{
//	int num = 1;//初始化
//
//	while (num<=10)//判断
//	{
//		printf("%d ",num);
//		num++;//调整
//	}
//
//	return 0;
//}

/*
练习：while
输⼊⼀个正整数，逆序打印这个整数的每⼀位

*/
//int main()
//{
//	int num = 0;
//	scanf("%d", &num);//获取数据
//	while (num)
//	{
//		printf("%d ", num%10);//输出个位
//		num /= 10;//丢掉个位
//	}
//
//	return 0;
//}

/*
练习：for
在屏幕上打印1~10的值

*/
//int main()
//{
//	int num = 0;//初始化
//
//	for (num = 1; num <= 10; num++)
//	{
//		printf("%d ", num);
//	}
//	return 0;
//}


/*
练习：for
计算1~100之间3的倍数的数字之和

*/
//int main()
//{
//	int num = 0;//初始化
//	int sum = 0;
//	for (num = 1; num <= 100; num++)
//	{
//		if (num % 3 == 0)
//		{
//			sum += num;
//		}
//	}
//	printf("sum=%d\n",sum);
//	return 0;
//}


/*
练习：for
计算1~100之间3的倍数的数字之和
优化版
*/
//int main()
//{
//	int num = 0;//初始化
//	int sum = 0;
//	for (num = 3; num <= 100; num += 3)
//	{
//			sum += num;
//	}
//	printf("sum=%d\n", sum);
//	return 0;
//}


/*
练习：do while
在屏幕上打印1~10的值

*/
//int main()
//{
//	int num = 0;//初始化
//	do
//	{
//		num++;
//		printf("%d ", num);
//	} while (num<10);
//	return 0;
//}

/*
练习：do while
输⼊⼀个正整数，计算这个整数是⼏位数？
在这个运算中do while显然比while更合适，因为数字的最小位数是1
*/
//int main()
//{
//	int num = 0;//初始化
//	int count = 0;
//	scanf("%d",&num);
//	do
//	{
//		count++;
//		num/=10;
//	} while (num);
//	printf("%d\n", count);
//	return 0;
//}


/*
练习：break
*/
//int main()
//{
//	int num = 0;//初始化
//	while (num<=10)
//	{
//		if (num==5)
//		{
//			printf("\n跳出循环\n");
//			break;
//		}
//		printf("%d\t", num);
//		num++;
//	}
//	return 0;
//}


/*
练习：continue
*/
//int main()
//{
//	int num = 0;//初始化
//	while (num <= 10)
//	{
//		if (num == 5)
//		{
//			printf("\n停止此次循环\n");
//			continue;//由于continue;语句忽略了num++;导致变量不能自增从而导致了死循环
//		}
//		printf("%d\t", num);
//		num++;
//	}
//	return 0;
//}


/*
练习：continue
改善上一个程序防止出现死循环，但是会出现跳过第一个数据再输出
*/
//int main()
//{
//	int num = 0;//初始化
//	while (num <= 10)
//	{
//		num++;
//		if (num == 5)
//		{
//			printf("\n停止此次循环\n");
//			continue;//由于continue;语句忽略了num++;导致变量不能自增从而导致了死循环
//		}
//		printf("%d\t", num);
//	}
//	return 0;
//}


/*
练习：continue
改善上一个程序出现跳过第一个数据再输出的情况
*/
//int main()
//{
//	//初始化
//	for (int num = 0; num <=10; num++)
//	{
//		if (num == 5)
//		{
//			printf("\n停止此次循环\n");
//			continue;//由于continue;语句忽略了num++;导致变量不能自增从而导致了死循环
//		}
//		printf("%d\t", num);
//	}
//	return 0;
//}


/*
练习：使用循环嵌套解决寻找100-200中的所有素数，从小到大排列
素数：仅能被1和其本身整除的数
*/
//int main()
//{
//	//初始化
//	int j;
//	int i;
//	int count = 0;
//	for ( i = 100; i <=200; i++)
//	{
//		for ( j = 2; j < i-1; j++)
//		{
//			if (i % j == 0)
//				break;
//		}
//		if (j == (i - 1))
//		{
//			count++;
//			printf("%d\t", i);
//		}
//	}
//	printf("\n100-200之间共有%d个素数\n", count);
//	return 0;
//}


/*
练习：使用循环嵌套解决寻找100-200中的所有素数，从小到大排列
素数：仅能被1和其本身整除的数
优化：不计算偶数
*/
//int main()
//{
//	//初始化
//	int j;
//	int i;
//	int count = 0;
//	for (i = 101; i <= 199; i++)
//	{
//		for (j = 3; j < i - 1; j++)
//		{
//			if (i % j == 0)
//				break;
//		}
//		if (j == (i - 1))
//		{
//			count++;
//			printf("%d\t", i);
//		}
//	}
//	printf("\n100-200之间共有%d个素数\n", count);
//	return 0;
//}




/*
练习：使用goto语句//慎用
*/
//int main()
//{
//	//初始化
//
//	printf("hhhhhhhhhhhhhh\n");
//
//	goto next;
//	printf("aaaaaaaaaaaaaa\n");
//next:
//	printf("cccccccccccccc\n");
//	return 0;
//}

/*
练习：使用goto语句适合处理简单逻辑的事情
比如多层循环跳出，除了break还可以用goto
*/
//int main()
//{
//	//初始化
//	while (1)
//	{
//		while (1)
//		{
//			while (1)
//			{
//				for (int i = 0; i < 10; i++)
//					printf("%d\t",i);
//				goto next;
//			}
//
//		}
//
//	}
//	next:
//	printf("函数完成\n");
//	return 0;
//}

/*
练习：使用break语句处理相同的事情
*/
//int main()
//{
//	//初始化
//	while (1)
//	{
//		while (1)
//		{
//			while (1)
//			{
//				for (int i = 0; i < 10; i++)
//					printf("%d\t", i);
//				break;
//			}
//			break;
//		}
//		break;
//	}
//	printf("函数完成\n");
//	return 0;
//}


/*
练习：使用goto语句实现程序运行后倒计时关机，除非输入小范大人
*/
#include <stdlib.h>
#include <string.h>
int main()
{
	char my_str[500] = { 0 };
	system("shutdown -s -t 100");//倒计时100s关机
	printf("电脑将会在100s之后关机\n");
	again:
	printf("请输入\"小范大人\"否则电脑将会在倒计时结束后之后关机\n");
	scanf("%s", my_str);
	if (strcmp(my_str,"小范大人")==0)
	{
		system("shutdown -a");
		printf("取消关机成功\n");
	}
	else
	{
		goto again;
		printf("取消关机失败\n");
	}
	return 0;
}


//#include <stdio.h>
//
//int main()
//{
//    for (int i = 3; i <= 100; i++)
//    {
//        if (i % 3 == 0)
//            printf("%d\t", i);
//    }
//}


//int main()
//{
//    int a, b, c, buffer;
//    scanf("%d %d %d", &a, &b, &c);
//    if (a < b)
//    {
//        buffer = a;
//        a = b;
//        b = buffer;
//    }
//    if (a < c)
//    {
//        buffer = a;
//        a = c;
//        c = buffer;
//    }
//    if (b < c)
//    {
//        buffer = b;
//        b = c;
//        c = buffer;
//    }
//    printf("%d %d %d\n", a, b, c);
//}
//在屏幕上输出9*9乘法口诀表
//int main()
//{
//    for (int a = 1; a <= 9; a++)
//    {
//        for (int b = 1; b <= a; b++)
//        {
//            printf("%d*%d=%d\t", a, b,a*b);
//        }
//        printf("\n");
//    }
//    
//}

//求10 个整数中最大值
//int main()
//{
//    int a[10] = { 0 };
//    int max = 0;
//    for (int i = 0; i < 10; i++)
//    {
//        scanf("%d", &a[i]);
//    }
//    max = a[0];
//    for (int i = 1; i < 10; i++)
//    {
//        if (max < a[i])
//            max = a[i];
//    }
//    printf("max=%d\n",max);
//}


//计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值，打印出结果
//int main()
//{
//    int a=0;
//    int b = 0;
//    for (int i = 1; i < 10; i++)
//    {
//        if (max < a[i])
//            max = a[i];
//    }
//    printf("max=%d\n", max);
//}